﻿using System;
namespace Producers.Rr.Xtee.Riik.Ee.Producer.Rr {
    
    
    public partial class RR403Response : global::Producers.Rr.Xtee.Riik.Ee.Producer.Rr.IRR403Response {
        
        private string @__isikukood;
        
        private string @__eesnimi;
        
        private string @__perenimi;
        
        private string @__isikuolek;
        
        private decimal @__veakood;
        
        private string @__veatekst;
        
        private System.Collections.Generic.List<RR403Response.IElukohtType> @__elukoht = new System.Collections.Generic.List<RR403Response.IElukohtType>();
        
        private System.Collections.Generic.List<RR403Response.ISamaAadressigaType> @__samaAadressiga = new System.Collections.Generic.List<RR403Response.ISamaAadressigaType>();
        
        public RR403Response() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public RR403Response(string @isikukood, string @eesnimi, string @perenimi, string @isikuolek, decimal @veakood, string @veatekst, System.Collections.Generic.List<RR403Response.IElukohtType> @elukoht, System.Collections.Generic.List<RR403Response.ISamaAadressigaType> @samaAadressiga) {
            this.@__isikukood = @isikukood;
            this.@__eesnimi = @eesnimi;
            this.@__perenimi = @perenimi;
            this.@__isikuolek = @isikuolek;
            this.@__veakood = @veakood;
            this.@__veatekst = @veatekst;
            this.@__elukoht = @elukoht;
            this.@__samaAadressiga = @samaAadressiga;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected RR403Response(IRR403Response @rR403Response) {
            this.@__isikukood = @rR403Response.Isikukood;
            this.@__eesnimi = @rR403Response.Eesnimi;
            this.@__perenimi = @rR403Response.Perenimi;
            this.@__isikuolek = @rR403Response.Isikuolek;
            this.@__veakood = @rR403Response.Veakood;
            this.@__veatekst = @rR403Response.Veatekst;
            this.@__elukoht = @rR403Response.Elukoht;
            this.@__samaAadressiga = @rR403Response.SamaAadressiga;
        }
        
        public virtual string Isikukood {
            get {
                return this.@__isikukood;
            }
            set {
                this.@__isikukood = value;
            }
        }
        
        public virtual string Eesnimi {
            get {
                return this.@__eesnimi;
            }
            set {
                this.@__eesnimi = value;
            }
        }
        
        public virtual string Perenimi {
            get {
                return this.@__perenimi;
            }
            set {
                this.@__perenimi = value;
            }
        }
        
        public virtual string Isikuolek {
            get {
                return this.@__isikuolek;
            }
            set {
                this.@__isikuolek = value;
            }
        }
        
        public virtual decimal Veakood {
            get {
                return this.@__veakood;
            }
            set {
                this.@__veakood = value;
            }
        }
        
        public virtual string Veatekst {
            get {
                return this.@__veatekst;
            }
            set {
                this.@__veatekst = value;
            }
        }
        
        public virtual System.Collections.Generic.List<RR403Response.IElukohtType> Elukoht {
            get {
                return this.@__elukoht;
            }
            set {
                this.@__elukoht = value;
            }
        }
        
        public virtual System.Collections.Generic.List<RR403Response.ISamaAadressigaType> SamaAadressiga {
            get {
                return this.@__samaAadressiga;
            }
            set {
                this.@__samaAadressiga = value;
            }
        }
        
        public partial class ElukohtType : IElukohtType {
            
            private string @__elukohtRiik;
            
            private string @__elukohtMaakondkd;
            
            private string @__elukohtMaakond;
            
            private string @__elukohtVald;
            
            private string @__elukohtAsula;
            
            private string @__elukohtTanav;
            
            private string @__elukohtMaja;
            
            private string @__elukohtKorter;
            
            private string @__elukohtSihtnumber;
            
            private string @__elukohtAlates;
            
            private string @__elukohtKuni;
            
            public ElukohtType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public ElukohtType(string @elukohtRiik, string @elukohtMaakondkd, string @elukohtMaakond, string @elukohtVald, string @elukohtAsula, string @elukohtTanav, string @elukohtMaja, string @elukohtKorter, string @elukohtSihtnumber, string @elukohtAlates, string @elukohtKuni) {
                this.@__elukohtRiik = @elukohtRiik;
                this.@__elukohtMaakondkd = @elukohtMaakondkd;
                this.@__elukohtMaakond = @elukohtMaakond;
                this.@__elukohtVald = @elukohtVald;
                this.@__elukohtAsula = @elukohtAsula;
                this.@__elukohtTanav = @elukohtTanav;
                this.@__elukohtMaja = @elukohtMaja;
                this.@__elukohtKorter = @elukohtKorter;
                this.@__elukohtSihtnumber = @elukohtSihtnumber;
                this.@__elukohtAlates = @elukohtAlates;
                this.@__elukohtKuni = @elukohtKuni;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected ElukohtType(IElukohtType @elukohtType) {
                this.@__elukohtRiik = @elukohtType.ElukohtRiik;
                this.@__elukohtMaakondkd = @elukohtType.ElukohtMaakondkd;
                this.@__elukohtMaakond = @elukohtType.ElukohtMaakond;
                this.@__elukohtVald = @elukohtType.ElukohtVald;
                this.@__elukohtAsula = @elukohtType.ElukohtAsula;
                this.@__elukohtTanav = @elukohtType.ElukohtTanav;
                this.@__elukohtMaja = @elukohtType.ElukohtMaja;
                this.@__elukohtKorter = @elukohtType.ElukohtKorter;
                this.@__elukohtSihtnumber = @elukohtType.ElukohtSihtnumber;
                this.@__elukohtAlates = @elukohtType.ElukohtAlates;
                this.@__elukohtKuni = @elukohtType.ElukohtKuni;
            }
            
            public virtual string ElukohtRiik {
                get {
                    return this.@__elukohtRiik;
                }
                set {
                    this.@__elukohtRiik = value;
                }
            }
            
            public virtual string ElukohtMaakondkd {
                get {
                    return this.@__elukohtMaakondkd;
                }
                set {
                    this.@__elukohtMaakondkd = value;
                }
            }
            
            public virtual string ElukohtMaakond {
                get {
                    return this.@__elukohtMaakond;
                }
                set {
                    this.@__elukohtMaakond = value;
                }
            }
            
            public virtual string ElukohtVald {
                get {
                    return this.@__elukohtVald;
                }
                set {
                    this.@__elukohtVald = value;
                }
            }
            
            public virtual string ElukohtAsula {
                get {
                    return this.@__elukohtAsula;
                }
                set {
                    this.@__elukohtAsula = value;
                }
            }
            
            public virtual string ElukohtTanav {
                get {
                    return this.@__elukohtTanav;
                }
                set {
                    this.@__elukohtTanav = value;
                }
            }
            
            public virtual string ElukohtMaja {
                get {
                    return this.@__elukohtMaja;
                }
                set {
                    this.@__elukohtMaja = value;
                }
            }
            
            public virtual string ElukohtKorter {
                get {
                    return this.@__elukohtKorter;
                }
                set {
                    this.@__elukohtKorter = value;
                }
            }
            
            public virtual string ElukohtSihtnumber {
                get {
                    return this.@__elukohtSihtnumber;
                }
                set {
                    this.@__elukohtSihtnumber = value;
                }
            }
            
            public virtual string ElukohtAlates {
                get {
                    return this.@__elukohtAlates;
                }
                set {
                    this.@__elukohtAlates = value;
                }
            }
            
            public virtual string ElukohtKuni {
                get {
                    return this.@__elukohtKuni;
                }
                set {
                    this.@__elukohtKuni = value;
                }
            }
        }
        
        public interface IElukohtType {
            
            string ElukohtRiik {
                get;
                set;
            }
            
            string ElukohtMaakondkd {
                get;
                set;
            }
            
            string ElukohtMaakond {
                get;
                set;
            }
            
            string ElukohtVald {
                get;
                set;
            }
            
            string ElukohtAsula {
                get;
                set;
            }
            
            string ElukohtTanav {
                get;
                set;
            }
            
            string ElukohtMaja {
                get;
                set;
            }
            
            string ElukohtKorter {
                get;
                set;
            }
            
            string ElukohtSihtnumber {
                get;
                set;
            }
            
            string ElukohtAlates {
                get;
                set;
            }
            
            string ElukohtKuni {
                get;
                set;
            }
        }
        
        public partial class SamaAadressigaType : ISamaAadressigaType {
            
            private string @__samaAadressigaIsikukood;
            
            private string @__samaAadressigaEesnimi;
            
            private string @__samaAadressigaPerenimi;
            
            public SamaAadressigaType() {
            }
            
            /// <summary>
            /// All parameters
            /// </summary>
            public SamaAadressigaType(string @samaAadressigaIsikukood, string @samaAadressigaEesnimi, string @samaAadressigaPerenimi) {
                this.@__samaAadressigaIsikukood = @samaAadressigaIsikukood;
                this.@__samaAadressigaEesnimi = @samaAadressigaEesnimi;
                this.@__samaAadressigaPerenimi = @samaAadressigaPerenimi;
            }
            
            /// <summary>
            /// Copy Constructor
            /// </summary>
            protected SamaAadressigaType(ISamaAadressigaType @samaAadressigaType) {
                this.@__samaAadressigaIsikukood = @samaAadressigaType.SamaAadressigaIsikukood;
                this.@__samaAadressigaEesnimi = @samaAadressigaType.SamaAadressigaEesnimi;
                this.@__samaAadressigaPerenimi = @samaAadressigaType.SamaAadressigaPerenimi;
            }
            
            public virtual string SamaAadressigaIsikukood {
                get {
                    return this.@__samaAadressigaIsikukood;
                }
                set {
                    this.@__samaAadressigaIsikukood = value;
                }
            }
            
            public virtual string SamaAadressigaEesnimi {
                get {
                    return this.@__samaAadressigaEesnimi;
                }
                set {
                    this.@__samaAadressigaEesnimi = value;
                }
            }
            
            public virtual string SamaAadressigaPerenimi {
                get {
                    return this.@__samaAadressigaPerenimi;
                }
                set {
                    this.@__samaAadressigaPerenimi = value;
                }
            }
        }
        
        public interface ISamaAadressigaType {
            
            string SamaAadressigaIsikukood {
                get;
                set;
            }
            
            string SamaAadressigaEesnimi {
                get;
                set;
            }
            
            string SamaAadressigaPerenimi {
                get;
                set;
            }
        }
    }
}
